#include <iostream>
#include <vector>
using namespace std;
 
int main() // 滑动窗口？不是
{
    int n = 0;
    string str;
    cin >> n >> str;
    vector<int> arr(26);
    for(int i = 0; i < n; ++i)
    {
        arr[str[i] - 'a']++;
    }
        // for(int j = 0; j < 26; ++j)
        // {
        //     cout << arr[j] << " ";
        // }
    long long ret = 0;
    for(int i = 0; i < n; ++i) // 计算str[i]右边有多少个其它字符
    {
        for(int j = 0; j < 26; ++j)
        {
            if(str[i] - 'a' != j && arr[j] >= 2)
            {
                // int cnt = 0; // 用下面的的等差数列求和公式求
                // for(int k = arr[j] - 1; k >= 1; --k)
                // {
                //     cnt += k;
                // }
                // ret += cnt;
 
                // 等差数列求和公式：n * (a1 + an) / 2
                ret += (arr[j] - 1) * (1 + arr[j] - 1) / 2; // 求组合数C n 2?
            }
        }
        // cout << ret << " " << str[i] << " " <<  arr[str[i] - 'a'] << endl; // debug
        arr[str[i] - 'a']--;
    }
    cout << ret;
    return 0;
}
/*
3个c 3, 4个c 6
7
abcbccc // 6个acc n个c (n-1)!, 3+2+1
8
abcbcccc // 24个acc 5个c (n-1)!, 4+3+2
*/